#pragma once

#include "viml/value.h"
#include <vector>

namespace viml {

/**
 * type(value) - 返回值的类型编号
 * @param value Any - 需要检测类型的值
 * @return Number - VimL类型常量
 * 
 * 返回值对应关系：
 * - 0: v:t_number (数字，包括nil和none)
 * - 1: v:t_string (字符串)
 * - 2: v:t_function (函数、闭包、内建函数)
 * - 3: v:t_list (列表)
 * - 4: v:t_dict (字典)
 * - 5: v:t_float (浮点数)
 * - 6: v:t_bool (布尔值)
 */
Value type_builtin(const std::vector<Value>& args);

} // namespace viml